Compression


Cult3D supports various levels of compression and for several different areas of the representation of the object.

Types of Compression
Loss-less Lossy
Texture Maps The full texture map is stored. Cult3D will use a wavelet based image compression algorithm to save space. The object author can set the fidelity of the compression.
Vertices The exact positions of each vertex is stored. The geometry compression algorithm can slightly distort the actual objects geometry depending on the shape of the object.
Sound

The data is stored as is.

Sounds from *.wav files are compressed roughly 50%. MIDI data is not compressed.

The sound data is compressed using for instance a wavelet algorithm. The object author can set the fidelity of the compression.
Select Designer Codecs in the main menu to get a more in depth description of i.e Vertice and Sound compression algorithms.
Global Compression The Cult3D Player file [*.co] is then compressed as a whole, using a loss-less algorithm for further savings.
Original—184Kb

Let's look at a practical example of texture map compression. The image on the right is what we start with. It is a large (256x240pixels, 24bits, 184Kb) texture map.

The pictures shown here are only approximations of the real textures stored inside the Cult3D Player file [*.co] since there it is stored using a special wavelet compressed image format.

Detail at 100% (original)
 
Quality 50%—8.60Kb

By trading off a small amount of quality, we can greatly reduce the size (quality set for 50%, 256x240pixels, 24bits, 8.6Kb). For only a moderate change in quality we saved 175Kb (a savings of over 95%!).

Detail at 50%
 
Quality 0%—0.925Kb

So we can take this even further and set the quality for 0%. The resulting file is now down to a mere 0.925Kb (still 256x240pixels and 24bits)—barely enough pixels to feed a mouse. But as we can see, the quality has suffered a great deal.

Detail at 0%

 

This level of severe compression is very useful for reflection maps. If 0% is too much compression, try some value under 15%.

Compression Settings in the Save Object Dialog

figure 1

Object level animation compression.

Object level animation controls the compression levels for the animation matrices. "Object level" means that the animation in question is the matrix channel.

The matrix channel provides uniform rigid translations and orientations to the whole object, for each object in the scene.

Therefore, the first slider controls the compression level for the translation channel, while the second one controls the compression level for the orientation channel.


figure 2

Vertex level animation compression.

Vertex level animation is a secondary animation channel: it controls motion for each vertex in each object. At this level, each vertex is associated with its own motion path. Therefore, objects containing vertex level animations are usually much bigger than those containing only plain object level animations.

This tab contains a check box called Optimize. If the optimize option is set, the Designer will try to export the minimum vertex level animation information required to run the current presentation.

The Optimize option is particularly effective when the animations in the presentation are controlled by Animation "jump to" actions.

This option should not be selected when the Vertex Compression slider (just below the Optimize checkbox) is set to a value lower than 100%.


figure 3

Audio compression.

The slider controls the compression amount for the digital sound (WAVE files). MIDI files are not affected by this setting. The sample frequency or stereo/mono setting will not be changed by the compression setting. So if the sample is a 44.1KHz stereo sample, then it will still be a 44.1KHz stereo sample, after the compression. The sample will only get more and more distorted the higher the compression level, while the size of the sample will decrease.


figure 4

Mesh compression.

The mesh compression tab contains a set of combo boxes. These are used to set the compression level for the meshes contained in the presentation. Since it is a geometric compression, it does not reduce the number of polygons in the mesh, only the geometric precision of the objects.

The mesh compression algorithm is not lossy in any other respect than that it can lose precision of the objects' geometry data.

Losing precision of the geometry can generate small visual artifacts on some objects when high compression is used. If that should occur, try using a lower compression for the mesh. However, the High setting works for the majority of objects.

Copyright ⌐ 1998-1999 Cycore Computers AB, All Rights Reserved